(function($){
	/*网格*/
	var JiePosGrid = function(el, options){
		this.$grid = !el || el.length == 0 ? $("<table id='listtable'></table>") : el;
		this.options = $.extend({}, JiePosGrid.DEFAULT_OPTION, options);
		_init(this.$grid, this.options);
		this.load = function(params){
			this.clearChecked();
			this.$grid.datagrid("load", params);
		},
		/*刷新*/
		this.reload = function(params){
			this.clearChecked();
			this.$grid.datagrid("reload", params);
		},
		/*获取选中的行*/
		this.getChecked = function(){
			return this.$grid.datagrid("getChecked");
		},
		this.selectRow = function(index){
			this.$grid.datagrid("selectRow", index);
		},
		this.selectRecord = function(idValue){
			if(idValue){
				this.$grid.datagrid("selectRecord", idValue);
			}
		},
		/*清空所有选中的行*/
		this.clearChecked = function(){
			this.$grid.datagrid("clearChecked");
		}
//		return this.$grid;
	};
	
	/*默认配置*/
	JiePosGrid.DEFAULT_OPTION = {
		striped: true, // 设置为 true，则把行条纹化。（即奇偶行使用不同背景色）
		loadMsg: "数据正在努力加载中......", // 当从远程站点加载数据时，显示的提示消息
		pagination: true, // 设置为 true，则在数据网格（datagrid）底部显示分页工具栏
		rownumbers: true, // 设置为 true，则显示带有行号的列
		pageList: [10,20,30,40,50,100], // 初始化页面尺寸的选择列表
		baseColumns: true, // 控制是否添加默认的3列
		height: null, // 表格高度
		idField: "UUID",
		frozenColumns: [[{title: null, field: "UUID", width: 30, checkbox: true}]], // 复选框列冻结
		onLoadError: onLoadError
	}
	
	/*默认展示列*/
	JiePosGrid.DEFAULT_COLUMNS = [
		{title: "创建时间", field: "REC_CRT_TS", width: 140},
		{title: "修改时间", field: "REC_UPD_TS", width: 140},
		{title: "最后操作人", field: "REC_UPD_USR_ID", width: 100}
	]
	
	/*列的默认设置*/
	JiePosGrid.COLUMNS = {
		halign: "center",// left,right,center
		width: 180, // 默认列宽
		sortable : true,//是否允许该列被排序 
	}
	
	/*表格初始化参数*/
	function _init($grid, options){
		var _columns = new Array();
		/*添加默认展示的列*/
		if(options.baseColumns == true){
			for(var i in JiePosGrid.DEFAULT_COLUMNS){
				options.columns.push(JiePosGrid.DEFAULT_COLUMNS[i]);
			}
		}
		/*设定列的默认值*/
		for(var i in options.columns){
			var _column = options.columns[i];
			for(var j in JiePosGrid.COLUMNS){
				if(!_column[j]){
					_column[j] = JiePosGrid.COLUMNS[j];
				}
			}
			options.columns[i] = _column;
		}
		_columns.push(options.columns);
		options.columns = _columns;
		/*设置表格高度*/
		if(typeof options.height === "number"){
			$grid.css({height: options.height});
		}
		return $grid.datagrid(options);
	}
	
	function onLoadError(response){
//		$.jpmessage.warning(response.responseText);
	//	$.jpmessage.error("系统异常，请联系管理员");
		window.location.href = baseUrl;
	}
	
	$.fn.jpgrid = function(options){
		return new JiePosGrid(this, options);
	}
})($);